User interface for selecting a photo tag

ABSTRACT

There is disclosed a user interface for selecting a photo tag. In an embodiment, the user interface embodies a method of selecting a photo tag for a tagged photo, comprising: providing a tag entry field for entering a photo tag; in dependence upon a string entered by a user, displaying in a matching tag list any tags from one or more selected tag sources matching the entered string. The method may further comprise displaying a tag type for each tag appearing in the matching tag list. The method may further comprise allowing user selection of a tag in the matching tag list to complete the tag entry field.

FIELD OF THE INVENTION

The present invention relates generally to a user interface for selecting a photo tag.

BACKGROUND

Identifying people or objects in photographs is popular in many online contexts, such as photo sharing, social networking, etc. Selecting a “tag” to associate with an identified point in a photograph can be a complicated task if there are many potential tags to choose from. In addition, wireless mobile communication device where there are constraints on the size of the display and the flexibility of the input method, some of these common techniques used on desktops and laptops with full sized screens do not work as well.

What is needed is an improved user interface for selecting tags in a smaller display, such as may be found on a wireless mobile communication device.

BRIEF DESCRIPTION OF THE DRAWINGS

In the figures which illustrate exemplary embodiments:

FIG. 1 is an illustration of a device in accordance with an embodiment;

FIG. 2 is a schematic block diagram of a communication subsystem component in the device of FIG. 1;

FIGS. 3A to 3E are illustrative user interface screens for editing photo tags in accordance with an embodiment;

FIGS. 4A to 4F are illustrative user interface screens for selecting a photo tag in accordance with an embodiment;

FIG. 5 is an illustrative flowchart of a method for editing photo tags in accordance with an embodiment; and

FIG. 6 is an illustrative flowchart of a method for selecting a photo tag in accordance with an embodiment.

DETAILED DESCRIPTION

As noted above, the present invention relates to a user interface for selecting a photo tag, particularly within a smaller display, such as may be found on a wireless mobile communication device.

In an illustrative embodiment, the invention may be practiced with a handheld mobile communication device in a wireless operating environment. Shown in FIG. 1 is a schematic block diagram of an illustrative handheld mobile communication device 100. The communication device 100 may comprise a number of components, including a main processor 102 which controls the overall operation of communication device 100. Communication functions, including data and voice communications, may be performed through a communication subsystem 104. The communication subsystem 104 may receive messages from and send messages to a wireless network 200.

The main processor 102 may also interact with additional subsystems such as a random access memory (RAM) 106, a flash memory 108, a display 110, an auxiliary input/output (I/O) subsystem 112, a data port 114, a keyboard 116, a trackball 117, a speaker 118, a microphone 120, short-range communications 122, a GPS subsystem 124, a camera module 126, and associated camera logic 128.

Some of the subsystems of the communication device 100 may perform communication-related functions, whereas other subsystems may provide “resident” or on-device functions. By way of example, the display 110 and the keyboard 116 may be used for both communication-related functions, such as entering a text message for transmission over the network 200, and device-resident functions such as a calculator or task list. The trackball 117 may be used for various navigation functions, such as navigating through a graphical user interface (GUI) menu displayed on display 110. The trackball 117 may also be configured with a secondary actuation feature, such as allowing a user to depress the trackball, to allow selection of a highlighted item.

The camera module 126 may be adapted to capture an image through a lens onto a light sensitive image sensor such as a charge coupled device (CCD) sensor array or a complementary metal oxide semiconductor (CMOS) sensor array. The camera lens may be a fixed focus lens, or a variable focus lens with or without zoom features and controlled by camera logic 128 to focus an image onto the CCD or CMOS sensor array. The size and pixel density of the CCD or CMOS sensor array may be suitably selected for the image resolution required for a particular application. Camera logic 128 may also control the camera lens aperture and/or shutter speed by incorporating a suitable light exposure meter. Image capture using camera module 126 may initiated by a user controlling a dedicated camera shutter, or a context dependent programmable button or key (on keyboard 116, for example) that may act as a camera shutter button.

Once captured by the CCD or CMOS sensor array, the image may then be processed by camera logic 128 into a suitable digital image file format such as Joint Photographic Experts Group (JPEG), Tagged-Image File Format (TIFF), Bit Mapping (BMP), different variations on these standard image file formats, or a vendor proprietary RAW image format. The image file format may allow for the addition of image meta-data to an image file in an industry standards exchangeable image file format (EXIF), or in some vendor proprietary meta-data format. The image file may then be stored in available device storage such as RAM 106 or flash memory 108, and displayed on display 110.

Still referring to FIG. 1, operating system software used by the main processor 102 is typically stored in a persistent store such as flash memory 108. Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may be temporarily loaded into a volatile store, such as the RAM 106, for processing by main processor 102.

The communication device 100 may send and receive communication signals over the wireless network 200 after required network registration or activation procedures have been completed. Network access may be associated with a subscriber or user of the communication device 100.

The communication device 100 may be a battery-powered device and may include a battery interface 132 for receiving one or more rechargeable batteries 130. In some embodiments, the battery 130 may be a smart battery with an embedded microprocessor. The battery interface 132 is coupled to a regulator (not shown), which assists the battery 130 in providing power V+ to the communication device 100. The battery 130 may be used to power all components and modules in the communication device 100, including the camera module 126 and associated camera logic 128.

The main processor 102, in addition to its operating system functions, enables execution of various software applications 134 on the communication device 100. A subset of software applications 134 that control basic device operations, including data and voice communication applications, will normally be installed on the communication device 100 during its manufacture.

The software applications 134 may include a messaging application 136. The messaging application 136 can be any suitable software program that allows a subscriber or user of the communication device 100 to send and receive wireless text communications. Various alternatives exist for the messaging application 136 as is well known to those skilled in the art. Messages that have been sent or received by the user are typically stored in local storage such as flash memory 108 of the communication device 100, or in some other suitable storage element in the communication device 100. In an alternative embodiment, some of the sent and received messages may be stored remotely from the communication device 100 such as in a data store of an associated host system that the communication device 100 communicates with. In an embodiment, the messaging application 136 may include a Message List user interface that is configured to allow a user to see a list of message objects (i.e. email messages) in a convenient list form. This will be described in detail further below.

Still referring to FIG. 1, communication device 100 may execute an Image Applications Module 148 that may be operatively integrated with camera module 126, camera logic 128, main processor 102, RAM 106, display 110 and various other modules and components to provide various image application functions for the images captured by the camera module 126. Image Applications Module 148 may include various sub modules which may interact with each other, and with other application modules such as the messaging application 136, Internet browser module 138, address book module 142, etc. in order to perform various functions.

In an embodiment, one of the sub modules of the Image Applications Module 148 may be a photo tagging module 148A configured to allow a user to identify various subjects and objects within a photo. Photo tagging module 148A will be discussed in more detail further below.

In an embodiment, another of the sub modules of the Image Applications Module 148 may be a photo tagging module 148A configured to allow a user to select a photo tag from a list of tags associated with various subjects and objects within a photo. Photo tag selection module 148B will be discussed in more detail further below.

The communication device 100 may further include a device state module 140, an address book 142, a Personal Information Manager (PIM) 144, and various other modules 150. Additional software applications may also be loaded onto the communication device 100 through at least one of the wireless network 200, the auxiliary I/O subsystem 112, the data port 114, the short-range communications subsystem 122, or other device subsystem 124.

Now referring to FIG. 2, shown is an illustrative front view of a handheld mobile communication device 100 that may provide a suitable operating environment. As shown, the communication device 100 may include a display 110, a keyboard 116, and other input or navigation means such as a trackball 117. The display 110 may be configured to display various screens allowing the user of device 100 to view screen outputs from the various software applications 134, including the image applications 148. Display 110 may also be configured to provide a touch-sensitive screen input in response to a prompt or query displayed on display 110. The communication device 100 may further include a camera lens that may be used to capture an image as described above with reference to FIG. 1. In an embodiment, the integrated camera 126 may provide a camera lens 127 on the back of the communication device 100, such that a user may use the display 110 as a camera viewfinder for framing an image.

Now referring to FIG. 3A, shown is an illustrative user interface screen 300A in which photo tagging module 148A may be configured for tagging a photograph in accordance with an embodiment. As shown, a photo 301 of a subject 302 is displayed within the boundaries of the user interface. With this user interface, a tag list 304 may include various tags associated subject 302 or other subjects or objects within the photo 301. The user may click an “Add” button 306 in order to enter a photo tagging mode as described below.

Now referring to FIG. 3B, as shown in screen 300B, once in the photo tagging mode, the photo tagging module 148A may be configured to display to the user a pointer, such as cross-hair pointer 308 on the photo 301. The user may move the cross-hair pointer 308 around the photo 301, but unlike common web browser interfaces, the cross-hair pointer 308 may be constrained by the photo tagging module 148A to be navigable only within the boundaries of the photo 301. The user does not have the ability to move the cross-hair pointer around the rest of the screen and perform other tasks, and the navigation device (e.g. trackball 117) is thus dedicated to this photo tagging function until the user exits tagging mode. As will be appreciated, this may allow users to avoid inadvertently clicking on some button or menu option just outside of the borders photo 301 when attempting to tag a subject or object near an edge of the photo. This may be particularly useful on a smaller display, where greater dexterity may be required in order to navigate within a small area using a small navigation device.

When in tagging mode, the user may cancel tagging mode using the escape key and return to simply viewing the existing tag information. Alternatively, the user may choose to add a tag at the current location of the crosshair pointer 308 using an enter key or clicking on the navigation device (e.g. trackball 117).

If the user chooses to add a tag, the user may be presented with another user interface to select the tag type and the context information associated with the tag. As an illustrative example, the tag types could include a free-form alphanumeric string, Facebook™ friends, address book entries (in address book 142), browser bookmarks (in Internet browser module 138), etc.

Now referring to FIG. 3C, as shown by way of illustration in screen 300C, when a tag has been added by a user using photo tagging module 148A, the added tag 310 associated with subject 302 may appear in the tag list 304 near the photo 301.

In an embodiment, the tag 310 could also include an icon, or some other type of visual indicator adjacent the tag 310, indicating what type of tag it is. Thus, many different types of tags may be used to tag subjects or objects in the photo 301.

Now referring to FIG. 3D, as shown by illustration in screen 300D, when the user scrolls over the tag 310 in the tag list 304, the corresponding subject 302 in the photo may be highlighted by the photo tagging module 148A in some way. This highlighting could be different, depending on what type of tag it is. For example, for a Facebook™ friend the pointer could be a grey square pointer 312 (e.g. like Facebook uses online). As another example shown in screen 300E of FIG. 3E, for a free-form text tag 314, the tagged point in the photo 301 could be indicated with a circle pointer 316.

When the user scrolls over a tag 310 in the tag list 304, a menu may be activated with options associated with the tag. For example, there may be menu items to edit or delete the tag. There may also be context sensitive menu options associated with the specific tag type. For example, for a Facebook friend there may be an item to view the friend's Facebook profile. For an address book entry, there may be an item to view the user's address card. For a browser bookmark, there may be an item to visit that website.

In another embodiment, once subjects or objects have been tagged in the photo 301, photo tagging module 148A may be configured such that upon user selection of a tag 310 in the tag list 304 the corresponding tagged subject or object in the photo 301 may be highlighted using the corresponding pointer identifying the tag type.

In another embodiment, once subjects (e.g. subject 302) or objects have been tagged in the photo 301, photo tagging module 148A may be configured such that upon user selection of or scrolling over a tagged subject or object in the photo 301, the corresponding tag 310 may be highlighted in the tag list 304. As well, context data associated with the tag may be displayed (e.g. in a pop-up window) upon user selection, or automatically if so configured.

Thus, using the above described user interface, a plurality of tag types may be used to tag subjects and objects in a photo, and a type-specific data may be associated with each tag—such as the visual indicator or symbol used to highlight the tagged subject or object in the photo, the custom actions available for the tag, etc.

Now referring to FIG. 4A, shown in screen 400A is an illustrative tag selection user interface 404 for displaying a tag search facility as may be presented by photo tag selection module 148B. As shown in FIG. 4A, the user is initially presented with a tag entry field 406 indicating that he should start typing a tag. Upon completion of typing, the user may click “OK” 408 to select the tag.

In an embodiment, as the user begins to type, photo tag selection module 148B may be configured to search one or more selected “tag sources” for tags that match the currently entered text. As shown by way of illustration in screen 400B of FIG. 4B, these tag sources could include, for example, a list of friends from an online service like Facebook™, a list of contacts from the user's address book 142, a list of the user's browser bookmarks (in Internet browser 138), a cache of recent free-form text entries, etc.

As shown in screen 400C of FIG. 4C, and 400D of FIG. 4D, photo tag selection module 148B may be configured to display any matching tags (e.g. 412 a, 412 b, 412 c) from one of the tag sources to the tag being typed by the user in the tag entry field 406 in a matching tag list 412. Each tag may have an icon or some other visual identifier associated with it that clearly indicates its type, and allows the user to quickly distinguish between different types of tags.

If the user types text that does not match any tag from the tag sources in the matching tag list 412, the photo tag selection module 148B may create a new free-form tag entry and add it to a free-form text cache as a new tag entry. The free-form text cache may then become one of the tag sources for any subsequent tag selection by the user.

As the user continues to type, if a tag that the user wishes to select appears in the matching tag list 412, the user can scroll to the tag in the matching tag list 412 and select it by pressing enter or clicking on the navigation device (e.g. trackball 117). For example, as shown in screen 400E of FIG. 4E, the user may select a tag 412 c which may then be placed into the tag entry field 406. The matching tag list 412 then disappears, and the selected tag may appear beside the photo (e.g. tag 310 as shown in FIG. 3C associated with subject 302 in the photo 301).

Significantly, as the matching tag list 412 includes possible tags that may be used from various selected tag sources (such as the user's Facebook friends, the user's address book 142, a list of the user's browser bookmarks from Internet browser 138, a cache of the recent free-form text entries, etc.), the user is provided with a simple way to associate subjects or objects in a photo with a predefined “tag” from one of a number of selected tag sources, as may be defined by the user. Thus, the free-form text cache would just be one of many possible tag sources, all of which contribute matching tag entries to the matching tag list 412.

Now referring to FIG. 4F, once a tag has been entered into the tag entry field 406, photo tag selection module 148B may be configured to allow the user to choose to view some context data associated with the tag (e.g. an address card if the tag identifies a contact in the user's address book 142). Finally, photo tag selection module 148B may be configured to allow the user to accept the new tag and return to the photo tagging user interface (described above with respect to FIGS. 3A to 3E), or cancel the tag selection and return to the photo tagging user interface.

In an embodiment, in addition to the tag sources mentioned above, another type of tag source may be landmark tags with associated geographic location information. For example, if a photo contains a number of distinctive landmarks, it may be possible for each landmark to be tagged with a unique geographic location tag (e.g. specific latitude and longitude coordinates for each landmark). Such a list of geographic location tags may be obtained, for example, as a user visits each of the landmarks identified in the photo.

For example, an aerial photo of the National Mall in Washington DC may show a number of famous landmarks such as the Lincoln Memorial, Vietnam Veterans Memorial, and The Washington Monument in the same photo. A user who has visited each of these landmarks, provided appropriate names, and recorded geographic location information at each landmark location may then subsequently select a landmark tag by name from the prepared landmark tag list in order to tag the appropriate points in the photo at which each of the landmarks appear. Once a user tags each landmark appearing in the photo using the appropriate landmark tag, the corresponding geographic coordinates also become available as context based information accessible through the tag.

In an alternative embodiment, a list of famous landmarks for various cities may be prepared by a third party such that a user need not be at each location to record the geographic coordinates. In this case a landmark tag may be selected by a user from a prepared landmark list that may be selected as one of the tag sources.

In the tag selection interface described above, each tag may have some context associated with it, depending on the tag type. As will be appreciated, this associated context may allow the user to visually identify and differentiate between the tag types in the tag selection user interface 404, and present other context sensitive menu options, such as viewing associated address cards, Facebook profiles, websites, geographic location information for landmarks, etc.

Now referring to FIG. 5, shown is a flowchart of an illustrative method 500 in accordance with an embodiment. As shown, method 500 begins and at block 502 where method 500 displays a photo in a display (e.g. display 110) to be tagged.

Method 500 then proceeds to block 504, where method 500 may configure photo tagging module 148A to provide a photo tagging mode for editing tags for the displayed photo.

Method 500 may then proceed to block 506, where for each tag used to tag a subject or object in the photo, method 500 may configure photo tagging module 148A to identify the tag type and associate a unique pointer for each tag type to highlight the corresponding tagged subject or object. For example, as described earlier, a grey square could be used for Facebook friends, and another shape and/or colour may be used for address book tag types.

Method 500 may then proceed to block 508, where method 500 may configure photo tagging module 148A to display a tag list with the displayed photo.

Method 500 may then proceed to block 510, where method 500 may configure photo tagging module 148A to identify the tag type of each tag in the tag list using a visual identifier. For example, the visual identifier may be an icon, or some suitable graphic appearing beside a tag name.

Method 500 may then proceed to block 512, where upon user selection of a tag in the tag list, method 500 may configure photo tagging module 148A to highlight the associated tagged subject or object in the photo using the unique pointer.

Method 500 may then proceed to block 514, where upon user selection of a tag in the tag list, method 500 may configure photo tagging module 148A to highlight the associated tag in the tag list.

Method 500 may also proceed to block 516, where method 500 may configure photo tagging module 148A to display context data associated with a tag. For example, context data associated with an address book type may be the email address, name, and other information stored in the address book module 138 for the corresponding address book entry. In an embodiment, the context data associated with the tag could be displayed within a menu that may be accessed by a suitable menu selection associated with each tag. Method 500 then ends.

Method 500 may also proceed to block 518, where method 500 may configure photo tagging module 148A to constrain the navigation device pointer to be navigable only within the boundaries of the photo.

Now referring to FIG. 6, shown is a flowchart of an illustrative method 600 in accordance with an embodiment. As shown, method 600 begins and at block 602 where method 600 provides a tag entry field for entering a photo tag.

Method 600 may then proceed to block 604, where in dependence upon a string entered by the user in the tag entry field, method 600 may configure photo tag selection module 148B to display in a matching tag list 412 any tags (412 a, 412 b, 412 c) matching the entered string.

Method 600 may then proceed to block 606, where method 600 may configure photo tag selection module 148B to display a tag type for each tag appearing in the matching tag list 412. For example, the visual identification may be an icon, or other suitable graphic identification appearing with the tag name.

Method 600 may then proceed to block 608, where method 600 may configure photo tag selection module 148B to order the matching tags in the tag list by tag type in order to make is easier for the user to select a suitable tag by tag type.

Method 600 may also proceed to block 610, where method 600 may configure photo tag selection module 148B to allow user selection of a tag in the matching tag list to complete the tag entry field 406.

Method 600 may then proceed to block 612, where if there are not matching tags appearing in the matching tag list 412, then method 600 may add the new free-from text tag to a free-form text tag cache.

Method 600 may then proceed to block 614, where method 600 may configure photo tag selection module 148B to select the free-form text tag cache as one of the tag sources for any subsequent tag selection by the user. Method 600 then ends.

Thus, in accordance with an embodiment, there is provided a method of selecting a photo tag for a tagged photo, comprising: providing a tag entry field for entering a photo tag; in dependence upon a string entered by a user, displaying in a matching tag list any tags from one or more selected tag sources matching the entered string.

In an embodiment, the method further comprises displaying a tag type for each tag appearing in the matching tag list.

In another embodiment, the method further comprises ordering tags in the matching tag list by tag type.

In another embodiment, the method further comprises allowing user selection of a tag in the matching tag list to complete the tag entry field.

In another embodiment, the method further comprises adding a new free-form text string to a free-form text cache if there are no tags remaining in the matching tag list.

In an embodiment, the method further comprises selecting as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.

In another aspect of the invention, there is provided a system for selecting a photo tag for a tagged photo, comprising: means for providing a tag entry field for entering a photo tag; means for displaying in a matching tag list, in dependence upon a string entered by a user, any tags from one or more selected tag sources matching the entered string.

In an embodiment, the system further comprises means for displaying a tag type for each tag appearing in the matching tag list.

In another embodiment, the system further comprises means for ordering tags in the matching tag list by tag type.

In another embodiment, the system further comprises means for allowing user selection of a tag in the matching tag list to complete the tag entry field.

In another embodiment, the system further comprises means for adding a new free-form text string to a free-form text cache if there are no tags remaining in the matching tag list.

In another embodiment, the system further comprises means for selecting as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.

In another aspect of the invention, there is provided a data processor readable medium storing data processor code that when loaded into a device adapts the device to select a photo tag for a tagged photo, the data processor readable medium comprising: code for providing a tag entry field for entering a photo tag; code for displaying in a matching tag list, in dependence upon a string entered by a user, any tags from one or more selected tag sources matching the entered string.

In an embodiment, the data processor medium further comprises code for displaying a tag type for each tag appearing in the matching tag list.

In another embodiment, the data processor medium further comprises code for ordering tags in the matching tag list by tag type.

In another embodiment, the data processor medium further comprises code for allowing user selection of a tag in the matching tag list to complete the tag entry field.

In another embodiment, the data processor medium further comprises code for adding a new free-form text string to a free-form text cache if there are no tags remaining in the matching tag list.

In another embodiment, the data processor medium further comprises code for selecting as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.

While illustrative embodiments have been described above, it will be appreciated that various changes and modifications may be made. More generally, the scope of the invention is defined by the following claims. 

1. A method of selecting a photo tag for a tagged photo, comprising: providing a tag entry field for entering a photo tag; in dependence upon a string, displaying in a matching tag list any tags from one or more selected tag sources matching the string; displaying a tag type for each tag appearing in the matching tag list, said tag type being indicative of a tag source associated with the tag.
 2. The method of claim 1, further comprising ordering tags in the matching tag list by tag type.
 3. The method of claim 1, further comprising providing a graphical user interface to select a tag in the matching tag list to complete the tag entry field.
 4. The method of claim 1, further comprising: if there are no tags remaining in the matching tag list, adding a new free-form text string to a free-form text cache.
 5. The method of claim 1, further comprising selecting as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.
 6. The system of claim 1, further comprising: an apparatus operable to add a new free-form text string to a free-form text cache if there are no tags remaining in the matching tag list.
 7. The system of claim 1, further comprising an apparatus operable to select as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.
 8. A system for selecting a photo tag for a tagged photo, comprising: an apparatus operable to provide a tag entry field for entering a photo tag; an apparatus operable to display in a matching tag list, in dependence upon a string, any tags from one or more selected tag sources matching the string; an apparatus operable to display a tag type for each tag appearing in the matching tag list, said tag type being indicative of a tag source associated with the tag.
 9. The system of claim 8, further comprising an apparatus operable to order tags in the matching tag list by tag type.
 10. The system of claim 8, further comprising an apparatus operable to allow selection of a tag in the matching tag list to complete the tag entry field.
 11. A computer readable medium storing computer code that when loaded into a device adapts the device to select a photo tag for a tagged photo, the computer readable medium comprising: code for providing a tag entry field for entering a photo tag; code for displaying in a matching tag list, in dependence upon a string, any tags from one or more selected tag sources matching the string; code for displaying a tag type for each tag appearing in the matching tag list, said tag type being indicative of a tag source associated with the tag.
 12. The computer readable medium of claim 11, further comprising code for ordering tags in the matching tag list by tag type.
 13. The computer medium of claim 11, further comprising code for providing a graphical user interface to select a tag in the matching tag list to complete the tag entry field.
 14. The computer medium of claim 11, further comprising: code for adding a new free-form text string to a free-form text cache if there are no tags remaining in the matching tag list.
 15. The computer readable medium of claim 11, further comprising code for selecting as a tag source one or more of an online network profile, an address book, browser bookmarks, landmark tags, and free-form text.
 16. The computer readable medium of claim 11, further comprising code for displaying context data with the photo tag.
 17. The computer readable medium of claim 16, wherein the context data is based on information in an address book. 